Referring to FIG. 1, a block diagram of a conventional camera color processing pipeline 20 is shown. Color correction is commonly used in digital cameras because a spectral response of the camera photo-receptors does not match a desired response in an output color space. The color correction is used to produce a picture that has accurate and aesthetically pleasing colors.
Several conventional color correction methods are currently available. Some methods use a matrix (M) multiplication to calculate an RGB output vector from a red, green, blue (RGB) input vector, such as:R_out=M11×R_in+M12×G_in+M13×B_inG_out=M21×R_in+M22×G_in+M23×B_inB_out=M31×R_in+M32×G_in+M33×B_inFor example, the Adobe “Digital Negative (DNG) Specifications” file format specifies color correction by means of a matrix. Other conventional color correction methods use a three-dimensional lookup table, with interpolation between the table entries. For example, U.S. Pat. No. 4,275,413 describes a method for tetrahedral interpolation.
Matrix conversions are an inexpensive way to perform color correction. Conventional three-dimensional table interpolations are commonly more complex—consuming longer run times on a computer, using more costly hardware or using higher power hardware. The table-based interpolations are more flexible than matrix conversions and can provide quality, realistic or pleasing output colors.